Az igazi programoz˘ nem Pascalban dolgozik BEVEZETS A r‚gi sz‚p id“kben (a sz mĄt˘g‚pek "aranykor ban") k”nny– volt megkl”nb”ztetni az "igazi f‚rfiakat" a "h tulgombol˘sokt˘l". Akkor azok voltak az igazi f‚rfiak, akik meg‚rtett‚k a programoz st, a h tulgombol˘sok pedig azok, akik nem. Az igazi programoz˘ ilyeneket sz˘lt, hogy "DO I=1,10", meg hogy "ABEND" (igaz ndib˘l szĄntiszta nagybet–kkel besz‚ltek), a t”bbiek pedig azt mondt k, hogy "a sz mĄt˘g‚p tŁl bonyolult nekem", meg hogy "nem tudok kapcsolatot teremteni a sz mĄt˘g‚ppel - nekem tŁls gosan szem‚lytelen". (Amint ezt az /1/ irodalomban l thatjuk, az igazi f‚rfiak nem f‚lnek att˘l, hogy nem tudnak kapcsolatot teremteni, ‚s att˘l sem, hogy elszem‚lytelenednek. Csakhogy, mint mindig, v ltoznak az id“k. Manaps g olyan vil ggal kell szemben‚znnk, amelyben ”reg n‚nik‚knek sz mĄt˘g‚p van a t–zhelykben ‚s 12 ‚ves flipperez“ k”lyk”k goly˘zhatj k ki a k db˘l az igazi f‚rfiakat. Manaps g ak rkinek lehet saj t kl”nbej ratŁ h zi sz mĄt˘g‚pe. Az igazi programoz˘t az a vesz‚ly fenyegeti, hogy kihal, ‚s ZX80-nal felszerelt k”z‚piskol sok fogj k helyettesĄteni. Tiszta sor, hogy ki kell mutatnunk, mi a kl”nbs‚g a tipikus flipperez“ k”z‚piskol s ‚s az igazi programoz˘ k”z”tt. Ha a kl”nbs‚get tiszt ztuk, ez mutat majd valamit a fiataloknak, valamit, amire t”rekedhetnek, egy apuka-k‚pet, ha Łgy tetszik. Ugyancsak segĄtnk megmagyar zni az igazi programoz˘ f“n”keinek, hogy hiba lenne, ha a vezet‚sk alatt  ll˘ igazi programoz˘kat 12 ‚ves flipper ”csikkel helyettesĄten‚k (jelent“s b‚rmegtakarĄt st ‚rve el ez ltal). NYELVEK Legszembet–n“bb kl”nbs‚g a plebs ‚s az igazi programoz˘ k”z”tt a haszn lt nyelv. Az igazi programoz˘ FORTRANban dolgozik. A h tulgombol˘s Pascalban. Egyszer Niklaus Wirth-et, a Pascal megalkot˘j t megk‚rdezt‚k, hogy hĄvj k, amire azt v laszota, hogy hĄvhatj k n‚v szerint "Virt"-nek, ‚s ‚rt‚k szerint "Worth"-nek. (LefordĄthatatlan sz˘j t‚k, a worth ‚rt‚ket is jelent.) Ad˘dik, hogy Niklaus Wirth h tulgombol˘s, az igazi programoz˘ csak egyf‚le param‚ter tad si m˘dot haszn l, m‚gpedig a cim szerintit, amint ezt az OS/370 G ‚s H FORTRAN fordĄt˘ teszi. Az igazi programoz˘nak nincs szks‚ge ilyen absztrakt fogalmakra ahhoz, hagy elv‚gezze a munk j t - t”k‚letesen ‚rzi mag t egy k rtyalyukaszt˘val, egy FORTRAN fordĄt˘val, meg egy s”rrel. Łgyhogy jegyezzk meg a k”vetkez“ket: 1. Az igazi programoz˘ a szimb˘lum manipul ci˘t FORTRANban csin lja. 2. Az igazi programoz˘ a sz”vegkezel‚st FORTRANban csin lja. 3. Az igazi programoz˘ a g‚pid“elsz mol st - m r ha megcsin lja egy ltal n - FORTRANban csin lja. 4. Az igazi programoz˘ a mesters‚ges intelligencia programokat FORTRANban csin lja. Amit nem lehet megcsin lni FORTRANban, azt meg lehet csin lni assemblyben. Amit nem lehet megcsin lni assemblyben, azt nem lehet megcsin lni. STRUKTURLT PROGRAMOZS A sz mĄt˘g‚ptudom ny tud˘sai az elmŁlt ”t ‚vben kital lt k a struktur lt programoz st. Azt  llĄtj k, hogy a programokat k”nnyebb meg‚rteni, ha bizonyos speci lis nyelvi konstrukci˘kat ‚s technik kat haszn lunk, b r nem ‚rtenek teljesen egyet abban, hogy melyeket. ll spontjukat rendszerint olyan p‚ld kkal illusztr lj k, amelyek elf‚rnek valami zugfoly˘irat egy lapj n - tiszt n l tszik, hogy ez nem el‚g ahhoz, hogy meggy“zz”n b rkit is. Mikor kij rtam az iskol t, azt hittem, hogy ‚n vagyok a legt”k”sebb programoz˘ a vil gon. Verhetetlen am“baprogramot tudtam Ąrni ”t kl”nb”z“ nyelven, ‚s 1000 soros programokat Ąrtam, amelyek MšK™DTEK!. (Igaz n!!.) Azt n a n‚gybet–s ‚letben az els“ feladatom az volt, hogy ‚rtsek meg egy 200000 soros FORTRAN programot, ‚s gyorsĄtsam fel a k‚tszeres‚re. Ak rmelyik igazi programoz˘ meg fogja mondani neked, hogy az eg‚sz vil g struktur lt programoz sa sem fog segĄteni ilyen feladat megold sakor, csak az, ha VALOBAN tehets‚ges vagy. N‚h ny megfigyel‚s az igazi programoz˘r˘l, ‚s a struktur lt programoz sr˘l: 1. Az igazi programoz˘ nem f‚l a GOTO-t˘l. 2. Az igazi programoz˘ ”t lap hosszŁ DO ciklust Ąr an‚lkl, hogy belezavarodna. 3. Az igazi programoz˘ szereti az aritmetikai IF-eket - ‚rdekesebb t“lk a program. 4. Az igazi programoz˘ ”nm˘dosĄt˘ k˘dot Ąr - kl”n”sen akkor, ha meg bĄr vele sp˘rolni 20 nanoszekundumot egy kis ciklus k”zep‚n. 5. Mivel a FORTRANban nincs struktur lt REPEAT, UNTIL vagy CASE utasĄt s, az igazi programoz˘nak nem kell gyelnie arra, hogy ne haszn lja ezeket. (De persze szks‚g eset‚n szimul lhatja “ket GOTO-val.) Az adatstruktŁr knak is sok figyelmet szentelnek Łjabban, bizonyos k”r”kben egyre n‚pszer–bbek az absztrakt adattĄpusok, pointerek, list k, stringek. Wirth (a fent emlĄtett h tulgombol˘s) k‚pes volt megĄrni egy eg‚sz k”nyvet err“l /2/, amiben azt mondja, hagy a programot nem ak rhogy kell megĄrni, hanem az adatstruktŁr kra kell ‚pĄteni. Viszont amint ezt minden igazi programoz˘ tudja, az egyetlen haszn lhat˘ adatstruktŁra a t”mb. Stringek, list k, struktŁr k, halmazok: ezek mind a t”mb speci lis esetei, ‚s ugyanŁgy is kezelhetjk “ket, an‚lkl, hogy a programoz si nyelvnket tŁlbonyolĄtan nk velk. A legrosszabb mindamellett ezekben az adatstruktŁr kban az, hogy r ad sul kl”n deklar lni is kell “ket, pedig az igazi programoz si nyelvekben, amint azt mindannyian tudjuk, implicit tĄpusdefinici˘ van a (6 bet–s) v ltoz˘n‚v els“ karaktere alapj n. OPERCIOS RENDSZEREK Milyen oper ci˘s rendszert haszn l egy igazi programoz˘? CP/M-et? Isten ments, a CP/M igaz b˘l egy j t‚kszer oper ci˘s rendszer, csak any˘k k ‚s iskol sk”lyk”k ‚rtik meg ‚s haszn lj k. A UNIX sokkal komplik ltabb - az  tlagos UNIX buher tornak sose jut esz‚be, hogy is hĄvj k ezen a h‚ten a PRINT parancsot - de ha belej”vnk, kiderl, hogy a UNIX egy rekl mozott vide˘j t‚k. Az emberek nem csin lnak komoly munk kat UNIX alatt - vicceket kld”zgetnek szerte a vil gba az UUCP h l˘zaton, meg kalandj t‚kokat Ąrnak. Nem, az igazi programoz˘ term‚szetesen OS/370-et haszn l. Az igazi programoz˘ csak el“veszi a JCL k‚zik”nyv‚t, ‚s m ris megtal lja (‚s meg is ‚rti!) az IJK305I zenet leĄr s t. Az igazi programoz˘ JCL-t tud Ąrni an‚lkl, hogy egy ltal n kinyitn  a k‚zik”nyvet. Az igaz n d”g”s programoz˘ hexa sz mol˘g‚p n‚lkl tal lja meg a hat megabyteos dumpban a hib t. (A saj t szememmel l ttam!) Az OS igaz n figyelemrem‚lt˘ oper ci˘s rendszer. T”bb napos munk t lehet t”nkretenni egyetlen rossz helyre rakott sz˘k”zzel, Łgyhogy az ‚bers‚g, az kĄv natos. A rendszerhez hozz f‚r‚s tuti eszk”ze a k rtyalyukaszt˘. N‚melyek ugyan azt  llĄtj k, hogy az OS/370 alatt id“oszt sos rendszer is van, de gondos vizsg lat ut n arra a k”vetkeztet‚sre jutottam, hogy ez t‚ved‚s. ESZK™Z™K Milyen eszk”z”ket haszn l az igazi programoz˘? Elm‚letileg az igazi programoz˘ a m‚rn”ki pultr˘l is bebilleny–zheti a programjait. Hajdan ban, mikor a sz mĄt˘g‚peknek m‚g voltak m‚rn”ki pultjaik, ‚s ez n‚melykor Ągy is t”rt‚nt. A tipikus igazi programoz˘ az eg‚sz bet”lt“t fejb“l tudja hex ban, ‚s kijavĄtja, ha a programja fellirja azt. (Annakidej‚n a mem˘ria m‚g mem˘ria volt, ‚s nem felejtett el mindent, mikor az  ramot kikapcsolt k. Manaps g vagy elfelejti a dolgokat amikor nem k‚ne, vagy olyasmire is eml‚kszik, amit jobb lett volna elfelejteni.) A legenda szerin Seymour CRAY, a CRAY I ‚s II szupersz mĄt˘g‚pek tervez“je (meg a legt”bb CDC g‚p‚) a CDC 7600 els“ oper ci˘s rendszer‚t a m‚rn”ki pultr˘l p”ty”gte be, amikor a g‚pet el“sz”r bekapcsolt k. F”l”sleges mondanunk, hogy Seymour Cray term‚szetesen igazi programoz˘. Kedvenc igazi programoz˘m a Texas Instruments egyik rendszerprogramoz˘ja. Az egyik nap t vols gi hĄv st kapott egy usert“l, akinek fejre llt az oper ci˘s rendszere egy fontos munka ment‚s‚nek a k”zep‚n. Jim telefonon keresztl megjavĄtotta a k rt, lemez i/o utasĄt sokat iratva be a userrel a m‚rn”ki pultr˘l, azt n hex ban kijavĄtotta a rendszert bl zatokat, a regisztereket meg telefonon olvast k neki. Erk”lcsi tanuls g: b r az igazi programoz˘ szersz mk‚szlet‚ben van egy lyukaszt˘ ‚s egy sornyomtat˘, szks‚g eset‚n meg bĄr lenni egy telefonnal meg egy m‚rn”ki pulttal is. N‚mely c‚gekn‚l a sz”vegszerkeszt‚s t”bb‚ nem Łgy n‚z ki, hogy tĄz m‚rn”k  ll sorba egy 029-es lyukaszt˘hoz. Igaz ndib˘l abban az ‚pletben, ahol ‚n dolgozom, nincs is lyukaszt˘. Az igazi programoz˘ ilyen helyzetben sz”vegszerkeszt“kkel dolgozik. A legt”bb rendszerben t”bbf‚le sz”vegszerkeszt“ van, ‚s az igazi programoz˘nak gondosan ki kell v lasztania azt, amelyik a legjobban illik az egy‚nis‚g‚hez. Sokan Łgy gondolj k, hogy a vil gon a legjobb sz”vegszerkeszt“ket a Xerox palo alt˘i kutat˘k”zpontj ban fejlesztett‚k ki, az Alto ‚s Dorado g‚pekre. /3/ Sajn latos m˘don nincs olyan igazi programoz˘, aki olyan g‚pet haszn lt volna, ahol az oper ci˘s rendszert Smalltalknak hĄvj k, ‚s term‚szetesen olyan sem, aki az eg‚r fark t r ngatn . N‚mely dolgot ezekb“l a Xerox editorokb˘l megcsin ltak olyan g‚pen is, ahol az oper ci˘s rendszernek rendes neve van. Ilyen az EMACS ‚s a VI. A gond ezekkel az editorokkal az, hogy az igazi programoz˘ szerint az "azt kapod amit l tsz" elv ‚ppen olyan hib s az editorokn l, mint a n“kn‚l. Nem, az igazi programoz˘ az "ezt akartad, h t nesze" editort szereti - bonyolultat, titokzatosat, vesz‚lyeset. TECO-t, p‚ld nak ok ‚rt. Megfigyelt‚k, hogy egy TECO parancssorozat j˘val ‚rz‚kenyebb a vonal zaj ra, mint az olvashat˘bb sz”veg. /4/ Az egyik izgalmas j t‚k amit a TECO-val j tszani lehet, hogy beĄrjuk a nevnket parancsnak, azt n megpr˘b ljuk kital lni, mit csin l. Gyakorlatilag b rmely g‚pel‚si hiba val˘szĄn–leg t”nkreteszi a programot, vagy rosszabb esetben finom, misztikus hib kat helyez egy m r m–k”d“ szubrutinba. Ebb“l kifoly˘lag az igazi programoz˘k kerlik egy majdnem m–k”d“ program edit l s t - Łgy gondolj k, hogy egyszer–bb belenyŁlni a bin ris k˘dba a SUPERZAP programmal (vagy ennek megfelel“j‚vel a nem IBM g‚peken). Ez a recept annyira j˘, hogy az IBM g‚peken sok m–k”d“ programnak m r nincs is k”ze az eredeti forr sk˘dhoz. Sokszor az eredeti forr s m r nincs is meg. Most mikor egy ilyen programba bele kell nyŁlni, a f“n”k nem tehet m st, minthogy hĄv egy igazi programoz˘t. Nincs olyan h tulgombol˘s struktur lt programoz˘, akinek egy ltal n fogalma lenne arr˘l, hol is kell kezdeni. Ezt hivj k "biztosĄtott munkahelynek". N‚h ny olyan szersz m, amit az igazi programoz˘ nem haszn l: 1. FORTRAN preprocesszorok, mint a MOTRAN ‚s a RATFOR. Gyermekk‚ tesznek. L sd a fenti megjegyz‚seket a struktur lt programoz sr˘l. 2. Forr snyelvi debuggerek - az igazi programoz˘ TUD dumpot olvasni. 3. IndextŁlcsordul st jelz“ fordĄt˘k. T”nkreteszik a kreativit st, az EQUIVALENCE izgalmasabb haszn lat t, ‚s lehetetlenn‚ teszik a rendszerterlet negatĄv indexekkel m˘dosĄt s t. 4. Forr sk˘d nyilv ntart˘ rendszerek. Az igazi programoz˘ a forr sk˘dot z rt szekr‚nyben tartja, mert nyilv nval˘, hogy a tulajdonos nem hagyhatja “rizetlenl szanasz‚jjel ‚rt‚kes programjait. /5/ AZ IGAZI PROGRAMOZO MUNKA K™ZBAN Hol dolgozik az igazi programoz˘? Milyen programok ,m‚lt˘k ilyen tehets‚ges egy‚nis‚g er“feszĄt‚s‚re? Biztosak lehetnk abban, hogy az igazi programoz˘t nem fogjuk rajtakapni, amint ‚ppen sz ml z˘programot Ąr COBOLban, vagy az el“fizet“k cĄmlist j t szortolja valami foly˘iratnak. Az igazi programoz˘ bet– szerint eget-f”ldet r z˘ feladatot kĄv n. 1. Igazi programoz˘k azok, akik a Los Alamos laborban dolgoznak, ‚s atombomba szimul ci˘kat futtatnak CRAY I/II g‚peken. 2. Igazi programoz˘k fejtik meg az NSA-n l az orosz ad sokat. 3. J˘r‚szt t”bb ezer igazi programoz˘ er“feszĄt‚s‚nek k”sz”nhet“, hogy a mieink hamar bb eljutottak a Holdra mint a ruszkik (‚s vissza is j”ttek!). 4. Igazi programoz˘k dolgoznak a Boeingn‚l ‚s Ąrj k a cirk l˘ rak‚t k oper ci˘s rendszereit. A legt”k”sebb igazi programoz˘k k”zl n‚h ny a Jet Propulsion laborban dolgozik Kaliforni ban. Sokan k”zlk fejb“l tudj k a Voyager ‚s a Pioneer –rszond k oper ci˘s rendszer‚t. Nagy, f”ldi FORTRAN programok ‚s kis, a szond n lev“ assembly programok kombin ci˘ival a navig ci˘ ‚s a r”gt”nz‚s hihetetlen mutatv ny t vitt‚k v‚ghez, 10 km-es pontoss ggal ‚rve a Szaturnuszhoz 6 ‚v repl‚s ut n, kijavĄtva vagy  tkapcsolva a t”nkrement r di˘kat, ‚rz‚kel“ket, telepeket. llĄt˘lag egy igazi programoz˘nak sikerlt a Voyager szond n n‚h ny sz z byte haszn latlan terletre besuvasztani egy mintafelismer“ programot, amely megkereste, megtal lta ‚s lef‚nyk‚pezte a Jupiter egy ismeretlen holdj t. A jelenlegi tervek szerint a Galileo –rszonda gravit ci˘val segĄtett p ly n fog menni a Mars mellett a Jupiter fel‚. Ez a p lya 80+-3 km-re halad el a Mars felszĄne f”l”tt. Ilyen pontoss gŁ navig ci˘t senki sem bĄzna egy Pascal programra (vagy egy Pascal programoz˘ra). Amint ez sejthet“, a vil g sok igazi programoz˘ja dolgozik az amerikai korm nynak (J˘r‚szt a hadgyminiszt‚riumnak). Ennek nyilv n Ągy is kell lennie. Œjabban s”t‚t felh“ jelent meg az igazi programoz˘ l that r n. Œgy tnik, hogy a Hadgyminiszt‚riumban valami magas polcra kerlt h tulgombol˘sok az tal lt k ki, hogy minden katonai programnak valami teljesen egys‚ges "Ada" nevezet– nyelvben kell Ąr˘dnia (Copyright DoD). Egy ideig Łgy t–nt, hogy az Ada olyan nyelv, amely az igazi programoz ssal ellent‚tes - vannak benne struktŁr k, adattĄpusok, szigorŁ tĄpusellen“rz‚s meg pontyosvessz“k. Sz˘val olyan nyelv, ami kiszorĄtja a kreativit st az igazi programoz˘b˘l. Szerencs‚re a Hadgyminiszt‚rium  ltal elfogadott nyelv el‚g ‚rdekes ahhoz, hogy az igazi programoz˘ sz m ra is elviselhet“ legyen - bonyolult, ‚s tartalmaz olyan lehet“s‚geket, amelyekkel meg lehet kavarni az oper ci˘s rendszert, Łjrarendezni a mem˘ri t. s Edsgar Dijkstr nak nem tetszik. /6/ (Dijkstra, amint ezt az olvas˘ bizony ra tudja, a "GOTO utasĄt s k”zismert  rtalmass g r˘l" cim– cikk szerz“jek‚nt szerzett hĄrnevet, amely m‚rf”ldk“ volt a programoz sm˘dszertan fejl“d‚s‚ben, ‚s a Pascal programoz˘k meg a h tulgombol˘sok tapsa kĄs‚rte.) Egy‚bk‚nt az igazi programoz˘ ak rmilyen nyelvben is bĄr FORTRAN programokat Ąrni. Az igazi programoz˘ kompromisszumot is k”thet, ‚s dolgozhat valami kev‚sb‚ trivi lis feladaton is, mint az emberek kipusztĄt sa, felt‚ve, hogy eleget fizetnek. P‚ld nak ok ‚rt n‚h ny igazi programoz˘ videoj t‚kokat Ąr az Atarinak. (De persze nem j tszik velk, mert az igazi programoz˘ mindig tudja, hogyan kell megverni a g‚pet, ‚s ebben nincs semmi ‚rdekes.) A Lucasfilmn‚l mindenki igazi programoz˘. (Igaz n hlyes‚g lenne nem megcsapolni ”tvenmill˘ Startrek-szurkol˘ p‚nz‚t.) A sz mĄt˘g‚pes grafika terlet‚n az  tlagn l kevesebb az igazi programoz˘, val˘szĄn–leg az‚rt, mert m‚g sem sem j”tt r , mire is j˘ a sz mĄt˘g‚pes grafika. M sr‚szt viszont a grafik t FORTRANban csin lj k, Łgyhogy el‚g sok ember grafik zik, Ągy kerlve el azt, hogy COBOLban kelljen adatfeldolgoznia. AZ IGAZI PROGRAMOZO JTK K™ZBEN Az igazi programoz˘ azzal j tszik, amivel dolgozik. Igaz b˘l folytonosan csod lkozik, hogy a munkaad˘ja fizet az‚rt, hogy “ azt csin lja, amit egy‚bk‚nt is tenne (de persze ˘vakodik att˘l, hogy ezt hangosan is kifejezze). Mindenesetre n‚ha kil‚p a szob j b˘l egy kiss friss leveg“t szĄvni, meg p r veg s”r‚rt. N‚h ny tipp, mir“l ismerszik meg az igazi programoz˘ a sz mĄt˘g‚pt“l t vol: 1. Buliban azok az igazi programoz˘k, akik a sarokban lve az oper ci˘s rendszerek v‚delm‚r“l besz‚lgetnek, meg arr˘l, hogy hogyan lehet azt megkerlni. 2. A meccsen az az igazi programoz˘, aki minden rŁg st ”sszehasonlĄt a futtatott szimul c˘ list j val. 3. A strandon az az igazi programoz˘, aki folyamat br kat rajzol a homokba. 4. Temet‚sen az igazi programoz˘ mondja azt, hogy "Szeg‚ny George, pont befejezte volna azt a szortol˘ rutint, ha el nem viszi a szĄvroham." 5. Az ABC-ben az az igazi programoz˘, aki maga akarja a l‚zerceruz val leolvasni a vonalk˘dot a konzervekr“l, mondv n, hogy a k rty it se bĄzta sose a lyukaszt˘kra. AZ IGAZI PROGRAMOZO TERMSZETES SZOKSAI Milyen k”rnyezetben ‚rzi j˘l mag t az igazi programoz˘? Ez ugye fontos k‚rd‚s az igazi programoz˘ f“n”keinek. Tekintve, hogy az igazi programoz˘ mennyibe kerl, ‚rdemes “t olyan k”rnyezetbe helyezni, ahol a legjobban v‚gzi a munk j t. A tipikus igazi programoz˘ ‚lettere termin lj nak k”zvetlen k”zel‚re terjed ki. Ezen temin l k”rl a k”vetkez“k tal lhat˘k: 1. Az ”sszes program list ja, amelyen az igazi programoz˘ valaha is dolgozott, nagyj b˘l id“rendi sorrendben, elfogalva a szoba ”sszes sĄk fellet‚t. 2. Vagy f‚l tucat f‚lig res cs‚sze hideg k v‚. Esetleg csikkek is Łszhatnak a k v‚ban, ha nem lehetett megtal lni a list k k”z”tt a hamutart˘t. N‚ha a cs‚sz‚kben narancsl‚ van. 3. Hacsak nem kl”nlegesen j˘, OS JCL k‚zik”nyvek ‚s a Principles of Operation, n‚h ny ‚rdekesebb r‚szletn‚l kinyitva. 4. A falon egy sornyomtat˘ napt r (az 1969-es ‚vre). 5. A padl˘n sz‚tsz˘rva csokispapĄrok. 6. A fi˘k alj n egy folyamat brarajzol˘ sablon, amit az el“z“ lak˘ hagyott itt. (Az igazi programoz˘ programokat Ąr, nem pedig dokument ci˘t.) Az igazi programoz˘ 30, 40. vagy ak r 50 ˘r t is tud dolgozni egyfolyt ban, intenzĄv nyom s alatt. Igaz b˘l Ągy szeret dolgozni. A hosszŁ v laszid“ nem zavarja az igazi programoz˘t - legal bb szundĄthat egy kicsit, mĄg lemegy a fordĄt s. Ha nincs el‚g nyom s az igazi programoz˘n, Łgy igyekszik rendezni a dolgokat, hogy a feladat valami kis, de ‚rdekes r‚sz‚vel fogalalkozik kilenc h‚tig, majd a marad‚kot az utols˘ h‚ten fejezi be, k‚t vagy h rom, 50 ˘r s maratonban. Ezzel nem csak az “rletbe kergeti a f“n”k‚t, aki Łgy gondolja, hogy a projekt sosem lesz k‚sz, hanem ugyancsak j˘ rgye van arra, hogy ne kelljen dokument ci˘t csin lnia. ltal ban: 1. Az igazi programoz˘ nem dolgozik 9-5-ig. (Hacsak nem este 9-t“l reggel 5-ig.) 2. Az igazi programoz˘ nem visel nyakkend“t. 3. Az igazi programoz˘ nem hord dig˘cip“t. 4. Az igazi programoz˘ eb‚dre j”n be /7/. 5. Az igazi programoz˘ vagy tudja a feles‚ge nev‚t, vagy nem. Mindenesetre az ASCII (vagy EBCDIC) k˘dt bl t fejb“l tudja. 6. Az igazi programoz˘ nem tud f“zni. Az ABC nincs nyitva reggel 3-kor. Az igazi programoz˘ ropin meg k v‚n ‚l. A J™V™ Mit mondhatunk a j”v“r“l? Mindenesetre el kell gondolkodnunk azon, hogy a programoz˘k Łjabb gener ci˘j nak nem olyan az ‚letszeml‚lete, mint az el“deiknek. Sokan k”zlk nem is l ttak olyan sz mĄt˘g‚pet, amelynek egy ltal n lett volna m‚rn”ki pultja. Manaps g szinte egyikk sem tud sz mol˘g‚p n‚lkl hex ban sz molni. A most v‚gzettek puh k, megv‚dt‚k “ket a programoz s val˘s g t˘l a forr sszint– nyomk”vet“k, a z r˘jeleket sz mol˘ sz”vegszerkeszt“k meg a "bar ts gos" oper ci˘s rendszerek. S“t, ami a legsz”rny–bb, ezek k”zl az Łgynevezett sz mĄt˘g‚ptud˘sok k”zl n‚melyek an‚lkl kerlnek ki az egyetemr“l, hogy megtanult k volna a FORTRANt. El fogj k  rasztani a vil got a UNIX buzer torok meg a Pascal programoz˘k? Nekem Łgy t–nik, hogy az igazi programoz˘ sz m ra van j”v“. Sem az OS/370 sem a FORTRAN nem mutatja a kihal s jel‚t, a vil g minden Pascal programoz˘ja ”sszes er“feszĄt‚se ellen‚re. M‚g olyan kis trkk”k is, hogy a FORTRANba struktur lt k˘dol si konvenci˘kat vezessenek be, sikertelenl j rtak. Persze megjelentek m r a FORTRAN-77 fordĄt˘k, de h l' Istennek mindegyiket vissza lehet kapcsolni a j˘ ”reg FORTRAN-66-ba m r az els“ programsorban, hogy Łgy forduljanak a DO ciklusok, ahogy azt az Isten megteremtette. M‚g a UNIX sem olyan rossz az igazi programoz˘nak mint hajdan n volt. A legut˘bbi UNIX verzi˘k m r eg‚szen Łgy n‚znek ki, mint egy oper ci˘s rendszer, olyan, amely m‚lt˘ az igazi programoz˘ ‚rdekl“d‚s‚re. K‚t kl”nb”z“, ‚s kicsit inkompatibilis user interface, misztikus bonyolult teletype driver, meg virtu lis mem˘ria. Ha figyelmen kĄvl hagyjuk azt a t‚nyt, hogy a C "struktur lt", m‚g a C programoz s is elfogadhat˘ az igazi programoz˘nak. V‚gl is nincs ellen“rz‚s, a v ltoz˘nevek h‚t (tĄz? nyolc?) karakteresek, ‚s bedobt k a pointer adattĄpust is, mintha a FORTRAN ‚s az assembly legjobb r‚szei ”ssze lenn‚nek keverve. s m‚g nem is sz˘ltunk a DEFINE ravaszabb haszn lat r˘l. Nem, a j”v“ nem t–nik s”t‚tnek. Az elmŁlt n‚h ny ‚vben a sajt˘ m‚g meg is jegyezte, hogy igazi programoz˘k ‚s buher torok kerlnek ki a Stanfordr˘l ‚s a MIT-r“l is. L that˘an az igazi programoz s szelleme bennk is ‚l. AmĄg lesznek betegen defini lt c‚lok, bizarr hib k ‚s teljesĄthetetlen hat rid“k, mindig lesznek igazi programoz˘k, akik r bukkannak a probl‚m ra, ‚s megoldj k, megsp˘rolva a dokument ci˘t. Sok ig ‚ljen a FORTRAN. K”sz”netnyilv nĄt s K”sz”netemet fejezem ki Jan E.-nek, Dave S.-nek, Rich G.-nek ‚s Rich E.-nek, mert segĄtettek jellemezni az igazi programoz˘t, Kathy E.-nek, hogy r vett, ‚s ATD!AVSDS:MARK-nak a kezdeti inspir ci˘‚rt. (Meg magamnak, Dave N.-nak a g‚pel‚s‚rt!) Irodalom 1. Feirstein, B.: "Real Men Dont Eat Quiche", New York, Pocket Books, 1982. 2. Wirth, N.: "Algorithms + Data Structures = Programs", Prentice-Hall, 1976. 3. Ilson, Awe.: "Recent Research in Text Processing", IEEE Trans. Prof. Commun., Vol PC-23, No. 4, Dec 4th 1980. 4. Finseth, C.: "Theory and Practice of Text Editors - or - a Cookbook for An EMACS", B.S. thesis, MIT/LCS/TM-165, Massachusetts Institute of Technology, May 1980. 5. Weinberg, G.: "The Psychology of Computer Programming", New York, Von Nostrand Reinhold, 1971, p.110. 6. Dijkstra, E.: "On the GREEN Language submitted to the DoD", Sigplan notices, Vol 3 No. 10, Oct 1978. 7. sdcarl!lin, "Real Programmers", UUcp-net, Thurs Oct 21 16:55:16 1982. 8. Rose, Frank.: "Joy of Hacking", Science 82, Vol 3 No. 9, Nov 82, pp 58-66. 9. "The Hacker Papers", Psychology Today, August 1980.